The peer-to-peer model of communication implies that any node can act as a server for any other node. Resources are located by having the requesting node entering a resource query into the peer-to-peer network. How and by which protocol the requested resource is located depends on the search paradigm being employed in the peer-to-peer network; either by query flooding as in unstructured peer-to-peer networks, or by some distributed lookup mechanism as in structured peer-to-peer networks. The common assumption, however, is that all nodes, including the requesting node, the lookup nodes, and the target node(s), are all part of the peer-to-peer network. This assumption limits the use and makes the service more restrictive than the prevailing Internet model, where it is assumed that any registered server may be looked up through the public DNS system. The DNS system, however, assumes that a server has a stable IP address. Due to the way the current DNS system works, with distributed name servers and caching principles, address changes cannot take place too often, as this may lead to a server becoming unreachable during periods of change.
Dynamic DNS (DDNS) is an extension to the DNS system. DDNS allows the domain name data held in a name server to be updated in real time, thus allowing an Internet domain name to be assigned to a computer (server) with a varying (i.e., dynamic) IP address. The service usually involves a DDNS provider who is in control of the DNS registration and renewal process. The user updates the DDNS provider's DNS servers with the most current IP address of the server whenever a change is detected. The disadvantages with this solution includes the involvement of a DDNS provider and the potential long response times before an update takes full effect throughout the world-wide DNS system, during which the target server is unreachable. Furthermore, the method does not overcome the problem when hosts are located behind a Network Address Translator (NAT) and thus are assigned IP addresses from private (globally, non-routable) address realms.
Since the DNS and DDNS systems alone cannot give sufficient support for Internet host mobility, a number of methods and technologies have been proposed. Two approaches called network-layer mobility and higher-layer mobility exist in the prior art.
IP Mobility Support for IPv4″, IETF RFC 3344, C. Perkins, Ed., August 2002 and Mobility Support in IPv6″, IETF RFC 3775, D. Johnson et. al., June 2004 disclose the current IETF standard for network-layer mobility. Mobile IP makes it possible for a mobile user (mobile node or host) to maintain a single address while making transitions between networks and network media. Each mobile node is always identified by its home address, irrespective of its current point of attachment to the Internet, allowing for transparent addressing with respect to the network and all other devices. The only devices, which need to be aware of the movement of this node, are the mobile device and the home router acting on behalf of the mobile device. This approach relies on support in the IP substrate of the networks involved, which is not always the case. To support NAT traversal, additional message extensions of the Mobile IP protocol are required (IP-in-UDP encapsulation). Moreover, as Mobile IP is a routing solution with the objective to act transparently to higher layers of the Internet Protocol stack, it does not give any support for efficient transport of application data, which may become critical in mobile environments.
An application level end-to-end host mobility architecture is disclosed in “An End-to-End Approach to Host Mobility”, A. C. Snoeren and H. Balakrishnan, Proc. of the Sixth Annual ACM/IEEE International Conference on Mobile Computing and Networking, Boston, Mass., August 2000. It uses secure updates to the DNS system upon address change, and a set of connection migration options to manage changes in the IP address of a host without breaking the end-to-end connection. The approach is truly end-to-end in that no intermediate nodes are directly involved in the mobility support. As a consequence, the infrastructure itself does not offer efficient transport depending on end-host capabilities. Moreover, while the approach addresses connection migration across NATs, it gives no explicit support for reaching mobile servers behind NATs.
The prior art document “The design and implementation of an intentional naming system”, W. Adjie-Winoto et. al, 17th ACM Symposium on Operating Systems Principles, Charleston, S.C., December 1999, discloses a resource discovery and service location system for dynamic and mobile networks of devices and computers called Intentional Naming System (INS). INS uses a separate language based on attributes and values for its names and implements a late binding mechanism that integrates name resolution and message routing, enabling clients to continue communicating with end-nodes even if the name-to-address mappings change while a session is in progress. The INS architecture thus requires specific name resolvers in order to form an application-level overlay network.
One approach to cope with mobile networks and MANETs (mobile ad-hoc networks) is to apply cross-layer optimization to make the peer-to-peer overlay routing structure aware of the transient nature of the underlying network. This is the approach taken in the Mobile Peer-to-peer protocol disclosed in “Performance Evaluation of the Mobile Peer-to-Peer Protocol”, I. Gruber, R. Schollmeier, and W. Kellerer, Fourth International Workshop on Global and Peer-to-Peer Computing (GP2PC'2004), 2004; and “Mobile Peer-to-Peer Networking”, W. Kellerer, R. Schollmeier, I. Gruber, and F. Niethammer, patent WO2005041534, 2004. According to this approach cross layer communication is used to interlink the routing layer with the underlying physical layer. This approach assumes communication across layers, thus making deployment an issue.
The issue with peer-to-peer networking access to resource constrained mobile devices are addressed by means of offloading the mobile devices either by caching contents in the wired parts of the network, as disclosed in e.g. “Enabling mobile peer-to-peer networking”, J. Oberender et al, Mobile and Wireless Systems, LNCS 3427, Germany (2005); connecting the devices to dedicated gateways, as disclosed in e.g., “Mobile Web Server, Raccoon, project”, http://opensource.nokia.com/projects/mobile-web-server/, verified: 2007-05-01; or minimizing the signaling overhead by modifying the access protocol, as disclosed in e.g., “JXME project”, http://jxme.jxta.org/, verified: 2007-05-01. These approaches restrict the true end-to-end paradigm of the Internet.